package com.wunong.smart.collection.client.service;

import com.wunong.smart.collection.client.dto.CollectionDTO;
import com.wunong.smart.collection.client.query.CollectionQueryDTO;
import com.wunong.smart.domain.platform.common.BizSource;
import com.wunong.smart.domain.platform.rpc.Result;

import java.util.List;

/**
 * 收藏查询服务
 *
 * @author create by zealot.zt
 */
public interface CollectionReadService {

    /**
     * 根据收藏编号查询收藏内容
     *
     * @param id 收藏编号
     * @return
     */
    Result<CollectionDTO> getById(Long id);

    /**
     * 根据用户编号域收藏编号查询收藏内容
     *
     * @param userId 用户编号
     * @param id     收藏编号
     * @return
     */
    Result<CollectionDTO> getById(Long userId, Long id);

    /**
     * 根据业务信息查询收藏内容
     *
     * @param source 业务信息
     * @return
     */
    Result<List<CollectionDTO>> queryByBiz(BizSource source);

    /**
     * 根据业务信息查询收藏内容
     *
     * @param userId 用户编号
     * @param source 业务信息
     * @return
     */
    Result<CollectionDTO> getByUserIdAndBiz(Long userId, BizSource source);

    /**
     * 查询收藏列表
     *
     * @param queryDTO 查询对象
     * @return
     */
    Result<List<CollectionDTO>> query(CollectionQueryDTO queryDTO);

}
